lexer grammar BPSL;
options {
  language=Java;

}
@header {
	package modelbuilding.analysis.bpsl;
}

DISJUNCTION : '^' ;
T15 : ':=' ;
T16 : '\\exist' ;
T17 : ',' ;
T18 : '\\element' ;
T19 : ';' ;
T20 : '\\C' ;
T21 : '\\V' ;
T22 : '\\M' ;
T23 : '(' ;
T24 : ')' ;

// $ANTLR src "C:\Documents and Settings\Holger.TABLET\My Documents\Faculdade_ano_3\Iniciacao_Cientifica\artefatos_produzidos\ANTLRGrammars\Projeto\BPSL\SBPSL_Processor\BPSL.g" 89
PREDICATE	:     'Defined-in'
		|	'Reference-to-one'
		|	'Reference-to-many'
		|	'Inheritance'
		|	'Creation'
		|	'Invocation'
		|	'Argument'
		|	'Return-type'
		;

// A lexem for token PATTERNNAME may be any alfa-numeric string preceeded by string '\' except Strings '\exist' and '\element' already defined
// $ANTLR src "C:\Documents and Settings\Holger.TABLET\My Documents\Faculdade_ano_3\Iniciacao_Cientifica\artefatos_produzidos\ANTLRGrammars\Projeto\BPSL\SBPSL_Processor\BPSL.g" 100
PATTERNNAME	: 	'\\'( 'a'..'z' | 'A'..'Z' ) ( 'a'..'z' | 'A'..'Z' | '0'..'9' | '-' |'_' )*
		;

// An ID token may be recogniced for any alfa-numeric string not starting with '\' excepting the PREDICATE lexems, already defined
// $ANTLR src "C:\Documents and Settings\Holger.TABLET\My Documents\Faculdade_ano_3\Iniciacao_Cientifica\artefatos_produzidos\ANTLRGrammars\Projeto\BPSL\SBPSL_Processor\BPSL.g" 104
ID		:	( 'a'..'z'	| 'A'..'Z' ) ( 'a'..'z' | 'A'..'Z' | '0'..'9' | '-' |'_' )*
		;

//whitespace, tabulator and newline are matched to token WS and not feeded to the parser
// $ANTLR src "C:\Documents and Settings\Holger.TABLET\My Documents\Faculdade_ano_3\Iniciacao_Cientifica\artefatos_produzidos\ANTLRGrammars\Projeto\BPSL\SBPSL_Processor\BPSL.g" 108
WS  :  (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;}
    ;
